Tutorial Study Image

C++ 中的数学函数


2023 年 5 月 29 日, Learn eTutorial
877

作为 C 的超集,C++ 提供了广泛有益的数学函数。标准 C++ 和 C 提供这些函数以支持各种数学运算。这些函数可以直接使用,以简化代码和程序,而不是专注于实现。C++ 提供的数学函数列表如下:

您必须包含 <math.h><cmath> 头文件才能使用这些函数。您可以使用 C++ 中的各种函数对数字执行数学运算。

在本教程中,我们将学习什么是数学函数,并将通过示例演示如何在 C++ 程序中应用它们。

C++ 中数学函数的含义是什么?

数学函数定义为将一个集合 (A) 中的元素映射到另一个集合 (B) 的关系,其中第一个集合的每个元素只映射到第二个集合的一个元素。这对于 C/C++(以及其他编程语言)也适用,其中您有一个输入集和一个输出集。

作为 math 或 cmath 包一部分的数学函数可用于在 C++ 编程语言中执行计算。这些数学函数主要设计用于进行复杂的数学计算。

C++ 中的库使得执行复杂的数学运算(例如求解代数方程和三角函数)变得简单。例如,sin() 函数用于确定 sin 的值,pow() 函数确定值的幂,以及 sqrt 函数确定值的平方根。

不同类型的数学函数

Mathematical  functions in C++

C++ 支持广泛的算术函数,下面列出并提供了示例:

1. 最大值和最小值函数

函数 描述
max (p,q) max (p,q) 返回 p 和 q 之间能找到的最高/最大数字。
min (p,q) 如果您输入 min (p,q),它将提供 p 和 q 之间的最低/最小数字。

C++ 代码实现上述功能


#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << max(19,22) << "\n";
cout << min(19,22) << "\n";
return 0;
}
 

输出


22
19

2. 幂函数

函数 描述
pow (m,n) 此函数将计算 m 的 n 次幂。
sqrt(m) 此函数将计算 m 的平方根。
cbrt(n) 此函数将计算 n 的立方根。
hypot(m,n) 此函数将计算直角三角形的斜边。

C++ 代码实现上述功能


#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << pow(2,9) << "\n";
cout << sqrt(20) << "\n";
cout << cbrt(3) << "\n";
cout << hypot(8,10) << "\n";
return 0;
}
 

输出


512
4.47214
1.44225
12.8062

3. 指数函数

函数 描述
log(p) 此函数用于计算 p 的对数。
log10(p) 此函数用于计算 p 的常用对数。
log10(p) 此函数用于计算 p 的常用对数。
exp2(p) 此函数用于计算 p 的以 2 为底的指数。
log2(p) 此函数用于计算 p 的以 2 为底的对数。
logb(p) 此函数用于计算 p 的对数。

C++ 代码实现上述功能


#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << exp(10) << "\n";
cout << log(6) << "\n";
cout << log10(6) << "\n";
cout << exp2(50) << "\n";
cout << log2(4) << "\n";
cout << logb(4) << "\n";
return 0;
}
 

输出


22026.5
1.79176
0.778151
1.1259e+15
2
2

4. 整型函数

在它的帮助下可以找到最接近的整数值。

函数 描述
ceil(z) 此函数主要向上舍入 z 的值。
floor(z) 此函数将向下舍入 z 的值。
round(z) 此函数主要四舍五入 z 的值。
fmod(z,y) 通过将 z 除以 y,此函数确定余数。
trunc(z) 此函数会将 z 值截断为零。
rint(z) 将使用舍入模式对 z 值进行四舍五入。
remainder(z,y) 此函数将主要计算 z/y 的余数。
nearbyint(z) z 值将被四舍五入到最接近的整数值。

C++ 代码实现上述功能


#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << ceil(8450.01) << "\n";
cout << floor(952.777) <<< "\n";
cout << round(918.5) << "\n";
cout << fmod(9,71) << "\n";
cout << trunc(70.95) << "\n";
cout << rint(21.25) << "\n";
cout << nearbyint(189.22) << "\n";
cout << remainder(18,56) << "\n";
return 0;
}
 

输出


8451
952
919
9
70
21
189
18

5. 比较函数

如果它能帮助您在短时间内比较数字,那么数字的长度就没有关系。下面提供了几个比较函数示例:

函数 描述
isgreater(p,q) 它确定 p 是否大于 q。
islessequal(p,q) 它确定 p 是否小于或等于 q。
isgreaterequal(p,q ) 它确定 p 是否大于或等于 q。
islessgreater(p,q) 它确定 p 是否等于或大于 y。
isunordered(p,q) 它确定 p 是否已进行比较。

C++ 代码实现上述功能


#include <iostream>
#include <math.h>
using namespace std;
int main() {
// cout << less(22,29) << "\n";
cout << isgreater(48,47)<<"\n";
cout << islessequal(11,5)<< "\n";
cout << isgreaterequal(19,72)<< "\n";
cout << islessgreater(59,84)<<"\n";
cout << isunordered(62,84)<< "\n";
return 0;
}
 

输出


1
0
0
1
0

6. 使用三角函数

专门用于几何计算的函数。直角三角形提供了角度与两条边长之比之间的关系。

函数 描述
sin(y) 此函数计算正弦 y 的值。
cos(y) 此函数计算余弦 y 的值。
tan(y) 此函数计算正切 y 的值。
asin(y) 此函数计算反正弦 y 的值。
acos(y) 此函数计算反余弦 y 的值。
atan(y) 此函数计算反正切 y 的值。
atan2(y,x) 此函数计算 y 和 x 坐标的反正切值。

C++ 代码实现上述功能


#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout   <<   sin(0)<< "\n";
cout   <<   cos(0)<< "\n";
cout   <<   tan(1)<< "\n";
cout   <<   asin(1)<< "\n";
cout   <<  acos(0)<< "\n";
cout   <<   atan(1)<< "\n";
cout   <<   atan2(0,1)<< "\n";
return 0;
}
 

输出


0
1
1.55741
1.5708
1.5708
0.785398
0

7. 双曲函数。

这里还有一些更有趣的函数,称为“双曲函数”,可用于计算双曲三角函数的值。

函数 描述
sinh(x) 此函数计算 x 的双曲正弦值。
cosh(x) 此函数计算 x 的双曲余弦值。
tanh(x) 此函数计算 x 的双曲正切值。
asinh(x) 此函数计算 x 的双曲反正弦值。
acosh(x) 此函数计算 x 的双曲反余弦值。
atanh(x) 此函数将计算 x 的双曲反正弦值。

C++ 代码实现上述功能


#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout << sinh(0)<< "\n";
cout << cosh(0)<< "\n";
cout << tanh(1)<< "\n";
cout << asinh(1)<< "\n";
cout << acosh(1)<< "\n";
cout << atanh(0)<< "\n";
return 0;
}
 

输出


0
1
0.761594
0.881374
0
0

结论

数学函数对于节省大量时间和内存至关重要。所有数学函数都是内置的,因此无需直接创建任何数学函数。相反,只需添加一个头文件即可访问整个数学类库。